/*
 * @Description: 
 * @Author: changqing
 * @Date: 2021-08-29 20:37:27
 * @LastEditTime: 2021-08-29 20:44:20
 * @LastEditors: changqing
 * @Usage: 
 */


// scan需要传两个参数

// 累加函数：这个函数执行时会传入三个参数，可以搭配这三个参数处理数据后返回一个累加的结果，函数参数包含
//    acc：目前累加的值，也就是上一次执行累加函数的返回结果
//    value：当前事件推送的值
//    index：索引

// scan与reduceoperator很像，但reduce只会返回结束时的累加总结果

// 初始值
var { of } = require('rxjs');
var { scan } =  require('rxjs/operators');

const amount = [1, 2, 3, 4];

const source = of(...amount).pipe(
  scan(
    (acc, value) => acc + value, // 累加函数
    0 // 初始值
  )
);

source.subscribe(amount => {
  console.log(`${amount}`) 
});
// 1,3,6,10